package com.crm.dao.mapper.customMapper.performanceRankingManager;

import com.crm.model.qo.performanceRankingManager.PerformanceRankingQO;
import com.crm.model.vo.performanceRankingManager.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ Author ：pym
 * @ Date   ：2021/8/27 11:08
 */
public interface PerformanceRankingMapper {

    /**
     * 个人业绩统计
     *
     * @param performanceRankingQO 参数
     * @return {@link {java.util.List<com.crm.model.vo.performanceRankingManager.PersonalPerformanceRankingVO>}}
     * @Author pym
     * @Date 2021/8/27 14:14
     */
    List<PersonalPerformanceRankingVO> personalPerformanceRanking(@Param("performanceRankingQO") PerformanceRankingQO performanceRankingQO);

    /**
     * 公司业绩统计
     *
     * @param performanceRankingQO 参数
     * @return {@link {java.util.List<com.crm.model.vo.performanceRankingManager.CompanyPerformanceRankingVO>}}
     * @Author pym
     * @Date 2021/8/27 14:14
     */
    List<CompanyPerformanceRankingVO> companyPerformanceRanking(@Param("performanceRankingQO") PerformanceRankingQO performanceRankingQO);

    /**
     * 公司业绩统计
     */
    List<CompanyPerformanceRankingYmVO> companyPerformanceRankingByYm(@Param("dateStr") String dateStr, @Param("companyId") String companyId);

    /**
     * 占比
     *
     * @param dateStr    年月 yyyy-MM
     * @param salesmanId 销售人员Id
     * @return
     */
    List<AnalysisOfProductProportionVO> getAnalysisOfProductProportion(@Param("dateStr") String dateStr, @Param("salesmanId") String salesmanId);

    /**
     * 个人业绩组成
     * @param dateStr    年月 yyyy-MM
     * @param salesmanId 销售人员Id
     * @return
     */
    List<PerformanceComposition> getPerformanceComposition(@Param("dateStr") String dateStr, @Param("salesmanId") String salesmanId);


}
